package cn.com.huzo.model.entities.tech;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 成本预测明细-记录实体类
 *
 * @author 范学春
 */
public class CostForecastLinesEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = -533568953438043887L;
    private String LinesId;
    private Long HeaderId;
    private Long MaterialId;
    private String MaterialColourName;
    private String MaterialName;
    private String MaterialCode;
    private String Specification;
    private Long UomId;
    private String UomName;
    private String SupplierName;
    private Short OrderNo;
    private String PartOfNeed;
    private Double UnitPrice;
    private Double PieceYardage;
    private Double CostPerUnit1;
    private Double LossRatio;
    private Double LossQuantity;
    private Double PoAllowanceRatio;
    private Double PoAllowanceQuantity;
    private Double CostPerUnit2Quantity;
    private Double CostPerUnit2Amount;
    private Double MoqLevel;
    private Double PerUnitMoqLossQuantity;
    private Double PerUnitMoqLossAmount;
    private Double OtherFee1;
    private Double CostPerUnit3Quantity;
    private Double CostPerUnit3Amount;
    private Double MoqLossQuantity;
    private Double MoqLossAmount;
    private Double OtherFee2;
    private Double TotalLossAmount;
    private Integer MaterialSourceTypeId;            // 备料来源（默认 国内）
    private String MaterialSourceTypeName;
    private Integer PerColourQuantity;               // 每色数量，用于更新时的计算
    private Short RowFlag;                           // 成本预测明细记录标志 “0”-正常，“1”-包装费 “2”-加工费
    private String Description;

    public String getLinesId() {
        return LinesId;
    }

    public void setLinesId(String LinesId) {
        this.LinesId = LinesId;
    }

    public Long getHeaderId() {
        return HeaderId;
    }

    public void setHeaderId(Long HeaderId) {
        this.HeaderId = HeaderId;
    }

    public Long getMaterialId() {
        return MaterialId;
    }

    public void setMaterialId(Long MaterialId) {
        this.MaterialId = MaterialId;
    }

    public String getMaterialColourName() {
        return MaterialColourName;
    }

    public void setMaterialColourName(String MaterialColourName) {
        this.MaterialColourName = MaterialColourName;
    }

    public String getMaterialName() {
        return MaterialName;
    }

    public void setMaterialName(String MaterialName) {
        this.MaterialName = MaterialName;
    }

    public String getMaterialCode() {
        return MaterialCode;
    }

    public void setMaterialCode(String MaterialCode) {
        this.MaterialCode = MaterialCode;
    }

    public String getSpecification() {
        return Specification;
    }

    public void setSpecification(String Specification) {
        this.Specification = Specification;
    }

    public Long getUomId() {
        return UomId;
    }

    public void setUomId(Long UomId) {
        this.UomId = UomId;
    }

    public String getUomName() {
        return UomName;
    }

    public void setUomName(String UomName) {
        this.UomName = UomName;
    }

    public String getSupplierName() {
        return SupplierName;
    }

    public void setSupplierName(String SupplierName) {
        this.SupplierName = SupplierName;
    }

    public Short getOrderNo() {
        return OrderNo;
    }

    public void setOrderNo(Short OrderNo) {
        this.OrderNo = OrderNo;
    }

    public String getPartOfNeed() {
        return PartOfNeed;
    }

    public void setPartOfNeed(String PartOfNeed) {
        this.PartOfNeed = PartOfNeed;
    }

    public Double getUnitPrice() {
        return UnitPrice;
    }

    public void setUnitPrice(Double UnitPrice) {
        this.UnitPrice = UnitPrice;
    }

    public Double getPieceYardage() {
        return PieceYardage;
    }

    public void setPieceYardage(Double PieceYardage) {
        this.PieceYardage = PieceYardage;
    }

    public Double getCostPerUnit1() {
        return CostPerUnit1;
    }

    public void setCostPerUnit1(Double CostPerUnit1) {
        this.CostPerUnit1 = CostPerUnit1;
    }

    public Double getLossRatio() {
        return LossRatio;
    }

    public void setLossRatio(Double LossRatio) {
        this.LossRatio = LossRatio;
    }

    public Double getLossQuantity() {
        return LossQuantity;
    }

    public void setLossQuantity(Double LossQuantity) {
        this.LossQuantity = LossQuantity;
    }

    public Double getPoAllowanceRatio() {
        return PoAllowanceRatio;
    }

    public void setPoAllowanceRatio(Double PoAllowanceRatio) {
        this.PoAllowanceRatio = PoAllowanceRatio;
    }

    public Double getPoAllowanceQuantity() {
        return PoAllowanceQuantity;
    }

    public void setPoAllowanceQuantity(Double PoAllowanceQuantity) {
        this.PoAllowanceQuantity = PoAllowanceQuantity;
    }

    public Double getCostPerUnit2Quantity() {
        return CostPerUnit2Quantity;
    }

    public void setCostPerUnit2Quantity(Double CostPerUnit2Quantity) {
        this.CostPerUnit2Quantity = CostPerUnit2Quantity;
    }

    public Double getCostPerUnit2Amount() {
        return CostPerUnit2Amount;
    }

    public void setCostPerUnit2Amount(Double CostPerUnit2Amount) {
        this.CostPerUnit2Amount = CostPerUnit2Amount;
    }

    public Double getMoqLevel() {
        return MoqLevel;
    }

    public void setMoqLevel(Double MoqLevel) {
        this.MoqLevel = MoqLevel;
    }

    public Double getPerUnitMoqLossQuantity() {
        return PerUnitMoqLossQuantity;
    }

    public void setPerUnitMoqLossQuantity(Double PerUnitMoqLossQuantity) {
        this.PerUnitMoqLossQuantity = PerUnitMoqLossQuantity;
    }

    public Double getPerUnitMoqLossAmount() {
        return PerUnitMoqLossAmount;
    }

    public void setPerUnitMoqLossAmount(Double PerUnitMoqLossAmount) {
        this.PerUnitMoqLossAmount = PerUnitMoqLossAmount;
    }

    public Double getOtherFee1() {
        return OtherFee1;
    }

    public void setOtherFee1(Double OtherFee1) {
        this.OtherFee1 = OtherFee1;
    }

    public Double getCostPerUnit3Quantity() {
        return CostPerUnit3Quantity;
    }

    public void setCostPerUnit3Quantity(Double CostPerUnit3Quantity) {
        this.CostPerUnit3Quantity = CostPerUnit3Quantity;
    }

    public Double getCostPerUnit3Amount() {
        return CostPerUnit3Amount;
    }

    public void setCostPerUnit3Amount(Double CostPerUnit3Amount) {
        this.CostPerUnit3Amount = CostPerUnit3Amount;
    }

    public Double getMoqLossQuantity() {
        return MoqLossQuantity;
    }

    public void setMoqLossQuantity(Double MoqLossQuantity) {
        this.MoqLossQuantity = MoqLossQuantity;
    }

    public Double getMoqLossAmount() {
        return MoqLossAmount;
    }

    public void setMoqLossAmount(Double MoqLossAmount) {
        this.MoqLossAmount = MoqLossAmount;
    }

    public Double getOtherFee2() {
        return OtherFee2;
    }

    public void setOtherFee2(Double OtherFee2) {
        this.OtherFee2 = OtherFee2;
    }

    public Double getTotalLossAmount() {
        return TotalLossAmount;
    }

    public void setTotalLossAmount(Double TotalLossAmount) {
        this.TotalLossAmount = TotalLossAmount;
    }

    public Integer getMaterialSourceTypeId() {
        return MaterialSourceTypeId;
    }

    public void setMaterialSourceTypeId(Integer MaterialSourceTypeId) {
        this.MaterialSourceTypeId = MaterialSourceTypeId;
    }

    public String getMaterialSourceTypeName() {
        return MaterialSourceTypeName;
    }

    public void setMaterialSourceTypeName(String MaterialSourceTypeName) {
        this.MaterialSourceTypeName = MaterialSourceTypeName;
    }

    public Integer getPerColourQuantity() {
        return PerColourQuantity;
    }

    public void setPerColourQuantity(Integer PerColourQuantity) {
        this.PerColourQuantity = PerColourQuantity;
    }

    public Short getRowFlag() {
        return RowFlag;
    }

    public void setRowFlag(Short RowFlag) {
        this.RowFlag = RowFlag;
    }

    public String getDescription() {
        return Description;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof CostForecastLinesEntity)) {
            return false;
        }

        final CostForecastLinesEntity that = (CostForecastLinesEntity) o;

        return new EqualsBuilder()
                .append(this.getLinesId(), that.getLinesId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getLinesId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}
